package com.jt.system.mapper;

import com.jt.system.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Mapper注解有Mybatis官方提供，用于告诉mybatis底层为此注解描述的接口
 * 创建其实现类及对象，然后将对象交给spring管理。假如我们自己写实现类，
 * 可以在类中由spring为我们注入一个SqlSession对象，然后通过SqlSession
 * 实现与数据库回话。
 * 注意：@Mapper描述的数据层接口，要默认放在项目启动类所在的包或子包中。
 */
@Mapper
public interface UserMapper  {

    @Select("select id,username,password,status from tb_users where username = #{username}")
    User selectUserByUsername(String username);

    @Select("SELECT permission\n" +
            "FROM tb_user_roles ur JOIN tb_role_menus rm ON ur.role_id=rm.role_id\n" +
            "JOIN tb_menus m ON rm.menu_id=m.id\n" +
            "WHERE ur.user_id=#{userId}")
    List<String> doSelectUserPermissions(Long userId);
}
